Skip to content

add towncrier to manage changelogs#6350

Open
adhami3310 wants to merge 4 commits intomainfrom
add-towncrier-to-manage-changelogs
Open

add towncrier to manage changelogs#6350
adhami3310 wants to merge 4 commits intomainfrom
add-towncrier-to-manage-changelogs

Conversation

@adhami3310
Copy link
Copy Markdown
Member

No description provided.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Apr 21, 2026

Merging this PR will not alter performance

✅ 9 untouched benchmarks


Comparing add-towncrier-to-manage-changelogs (a71e539) with main (0d9f0c5)

Open in CodSpeed

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 21, 2026

Greptile Summary

This PR introduces towncrier for automated changelog management across the monorepo. It adds a shared [tool.towncrier] config in the root pyproject.toml, creates news/ stub directories for every package, documents the fragment workflow in CONTRIBUTING.md, and adds a GitHub Actions check (changelog.yml) that detects which packages were changed and verifies the presence of a corresponding news fragment, with a skip-changelog label escape hatch.

Confidence Score: 5/5

Safe to merge — tooling/infra change only, no application logic modified

All findings are P2 style suggestions; the workflow logic is sound (correct monorepo detection, safe empty-array handling, proper set -euo pipefail scoping), and the towncrier config aligns with the monorepo docs.

.github/workflows/changelog.yml — minor script-injection style issue on line 22

Important Files Changed

Filename Overview
.github/workflows/changelog.yml New workflow to enforce changelog fragments per PR; minor P2 style: expression injected directly into bash rather than via an env var
CONTRIBUTING.md Clear documentation added for changelog fragment workflow with types, CLI examples, and skip instructions
pyproject.toml Added towncrier dev dependency and full [tool.towncrier] monorepo config; moved ruff preview = true within same TOML section (no functional change)
news/+towncrier.misc.md Orphan fragment for this very PR, correctly using + prefix as instructed in CONTRIBUTING.md

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A([PR opened / updated]) --> B{skip-changelog\nlabel present?}
    B -- Yes --> Z([CI passes — skip])
    B -- No --> C[git diff --name-only\norigin/main...HEAD]
    C --> D{reflex/ changed?}
    D -- Yes --> E[Add '.' to affected]
    D -- No --> F{packages/**/src/ changed?}
    E --> F
    F -- Yes --> G[Add pkg_dir to affected]
    F -- No --> H{affected.txt empty?}
    G --> H
    H -- Yes --> Z
    H -- No --> I[For each pkg_dir:\ntowncrier check\n--config pyproject.toml\n--dir pkg_dir]
    I --> J{All checks pass?}
    J -- Yes --> K([CI passes])
    J -- No --> L([CI fails:\nmissing news fragment])
Loading

Reviews (1): Last reviewed commit: "add towncrier to manage changelogs" | Re-trigger Greptile

Comment thread .github/workflows/changelog.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant